//============================================================================
/**
 *
 *	@file		break_kawara.h
 *	@brief		かわら関連
 *	@author		hosaka genya
 *	@data		2008.11.11
 *
 */
//============================================================================
#pragma once

#include "common.h"
#include "system/clact_tool.h"

#include "break_common.h"

typedef struct KAWARA_EFFECT_CNT_tag * KAEARA_EFFECT_CNT_PTR;
typedef struct KAWARA_CNT_WORK_tag * KAWARA_CNT_PTR;

//=============================================================================
/**
 *								定数定義
 */
//=============================================================================

typedef enum {
	KC_STATE_NULL = 0,
	KC_STATE_MAKE,		///< かわら生成
	KC_STATE_NORMAL,	///< 通常状態
} KC_STATE; ///< Kawara Control State

//=============================================================================
/**
 *								構造体定義
 */
//=============================================================================

extern KAWARA_CNT_PTR KawaraCnt_Create( HEAPID HeapID, CATS_SYS_PTR csp, CATS_RES_PTR crp, PKTHLN_PTR work );
extern void KawaraCnt_Delete( KAWARA_CNT_PTR cnt );
extern void KawaraCnt_Proc( KAWARA_CNT_PTR cnt );
extern void KawaraCnt_SetEnd( KAWARA_CNT_PTR cnt );
extern BOOL KawaraCnt_CheckCritical( KAWARA_CNT_PTR ptr, BREAK_TEC_LV tecLv );
extern BOOL KawaraCnt_CheckHit( KAWARA_CNT_PTR cnt );
extern u16 KawaraCnt_Damage( KAWARA_CNT_PTR cnt, u8 PokeIdx, s16 damage, BOOL bCritical, BOOL bHighTension, BOOL* outBreakAllFlag );
extern KAWARA_CNT_PTR KawaraCnt_Create( HEAPID HeapID, CATS_SYS_PTR csp, CATS_RES_PTR crp, PKTHLN_PTR work );
extern KC_STATE KawaraCnt_GetState( KAWARA_CNT_PTR cnt );
extern u16 KawaraCnt_GetBreakCount( KAWARA_CNT_PTR cnt );

